A processor breakpoint is a stopping place in a program, also known as a pause, put in place for debugging purposes. The processor breakpoint is typically triggered when a specific memory location is accessed. During the interruption, the memory, register, etc., environment is examined to determine whether the program is functioning as expected. The memory location can be in program memory and may comprise a specific instruction which when fetched by the processor may trigger the breakpoint and stop execution. These type of breakpoints may only need to compare the program counter with the respective memory address. However, the memory location may also be in data memory and either a write or read operation or both may trigger the breakpoint and stops further execution of instructions.
Most multi-processor devices use symmetrical processor cores. By definition, the cores are interchangeable, sharing memory, peripherals, and software tasks. The system software is allocated an available processor as it becomes free. Thus, a debugging is confined to a particular core. Accordingly, there is no need to determine what another core is doing at the same time.
In multi-processor devices with asymmetrical processor cores, however, the asymmetrical cores have differing memory and peripheral sets, may also operate at different speeds, and execute different software programs. In this case, a function of one processor can thereby affect another.
There is therefore a need to correlate a specific processor's breakpoint event with what the other processors are doing.